/* @author cerimice */
package Persistencia.Definicion;

import Sistema.Configuracion;

import java.util.Date;
import java.util.Collection;
import java.io.Serializable;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.NamedQuery;
import javax.persistence.CascadeType;
import javax.persistence.NamedQueries;

import javax.persistence.OneToMany;

@Entity
@Table(name="permiso")
@NamedQueries
    ({
    @NamedQuery(name="permiso.lista", query="SELECT p FROM Permiso p ORDER BY p.nombre")
    })

public class Permiso implements Serializable
    {
    @Id
    @Basic(optional=false)
    @Column(name="clave",nullable=false)
    private String clave;
    
    @Basic(optional=false)
    @Column(name="nombre",nullable=false)
    private String nombre;
    
    @Basic(optional=false)
    @Column(name="permisoMarca",nullable=false)
    private boolean permisoMarca;
    
    @Basic(optional=false)
    @Column(name="permisoCliente",nullable=false)
    private boolean permisoCliente;
    
    @Basic(optional=false)
    @Column(name="permisoUsuario",nullable=false)
    private boolean permisoUsuario;
    
    @Basic(optional=false)
    @Column(name="permisoTipoServicio",nullable=false)
    private boolean permisoTipoServicio;
    
    @Basic(optional=false)
    @Column(name="permisoGenerarOrdenServicio",nullable=false)
    private boolean permisoGenerarOrdenServicio;
    
    @Basic(optional=false)
    @Column(name="permisoSeguimientoOrdenServicio",nullable=false)
    private boolean permisoSeguimientoOrdenServicio;
    
    @Basic(optional=false)
    @Column(name="permisoCartucho",nullable=false)
    private boolean permisoCartucho;
    
    @Basic(optional=false)
    @Column(name="permisoRecargaCartucho",nullable=false)
    private boolean permisoRecargaCartucho;
    
    @OneToMany(mappedBy="objPermiso",cascade=CascadeType.ALL)
    private Collection<Usuario> usuarios;
    
    public Permiso()
        {clave = Configuracion.getFormatoClave().format(new Date());}
    
    public void setClave(String clave)          {this.clave = clave;}
    public void setNombre(String nombre)        {this.nombre = nombre;}
    public void setPermisoMarca(boolean permisoMarca) {this.permisoMarca = permisoMarca;}
    
    public String   getClave()                              {return clave;}
    public String   getNombre()                             {return nombre;}
    public boolean  getPermisoMarca()                       {return permisoMarca;}
    public boolean  getPermisoCliente()                     {return permisoCliente;}
    public boolean  getPermisoUsuario()                     {return permisoUsuario;}
    public boolean  getPermisoTipoServicio()                {return permisoTipoServicio;}
    public boolean  getPermisoGenerarOrdenServicio()        {return permisoGenerarOrdenServicio;}
    public boolean  getPermisoSeguimientoOrdenServicio()    {return permisoSeguimientoOrdenServicio;}
    public boolean  getPermisoCartucho()                    {return permisoCartucho;}
    public boolean  getPermisoRecargaCartucho()             {return permisoRecargaCartucho;}
    public Collection<Usuario>  getColeccionUsuarios()      {return usuarios;}
    
    @Override
    public String toString()                {return this.clave+" - "+this.nombre;}
    }
